<!-- Documentation produced by the Html generator of Bouml (http://bouml.free.fr) -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>IPFW_MUD_Server
Documentation</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>

<body bgcolor="#ffffff">

<div class = "title">IPFW_MUD_Server<br />Documentation</div>
<p></p>

<!-- ============================================================= -->

<a name="refpackage129"></a>
<p>Properties:<ul>
<li>html dir:<br /><div class="sub">/home/safar/mudserver/trunk/Documentation/</div></p></li>
</ul></p>
<a name="refpackage128120"></a>
<h1 class ="package">1 Package Requirements</h1>
<div class="sub">
<a name="refuse case view128120"></a>
<h2 class ="view">1.1 Use Case View High Level View</h2>
<p>High Level Overview of interaction between major system components, and the user.<br /></p>
<div class="sub">
<table><tr><td><div class="element">Class <b><a href="class128120.html#refclass128120"><b>User</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class128248.html#refclass128248"><b>Administrator</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class128376.html#refclass128376"><b>Moderator</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class128504.html#refclass128504"><b>ConnectionManager</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class128632.html#refclass128632"><b>AccountManager</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class128760.html#refclass128760"><b>World</b></a></b></div></td></tr></table>
<a name="refuse case132600"></a>
<h3 class ="usecase">1.1.1 Use Case Install Game World</h3>
<p>Administrator<br />	gameworld<br /><br />Install software<br />	Configure gameworld<br /><br /><br />End<br /></p>
<table><tr><td><div class="element">Class <b><a href="class129912.html#refclass129912"><b>GameManager</b></a></b></div></td></tr></table>
<a name="refuse case128043"></a>
<h3 class ="usecase">1.1.2 Use Case Construct World</h3>
<div class="sub">
<a name="refuse case132472"></a>
<h4 class ="usecase">1.1.2.1 Use Case Add Room</h4>
<p>Administrator<br />	gameworld<br /><br />	prompt for each property of a room (doors, etc)<br />Answer each question<br />	prompt for rooms to link it to<br />specify adjacent rooms<br /><br />End<br /></p>
<a name="refuse case132728"></a>
<h4 class ="usecase">1.1.2.2 Use Case Delete Room</h4>
<p>Administrator<br /><br />Select room to delete<br />	collect garbage in the room<br />	make sure room has no players<br />	de-link room (doors and windows<br />	to that room become walls)<br />	Notify users in formerly adjacent<br />	rooms of this change<br /><br />End<br /></p>
<p>Extension points:<br /><div class="sub">3a if room contains players, <br />	moved them to a randomly<br /> 	chosen adjacent rooms <br />	(for each player, choose an adj.<br />	room at random and move the player<br />	to that room)</div></p>
<a name="refuse case diagram129195"></a>
<p align="center"><img src="fig129195.png" alt="" /></p>
 <p align="center"><b>Construct World</b></p><p><br /></p><p><br /></p>
<a name="refuse case132984"></a>
<h4 class ="usecase">1.1.2.3 Use Case Change Room Descriptions</h4>
<p>Adminstrator<br />	gameWorld<br /><br />Select Room<br />	prompt for room changes<br />enter room change<br />	repeat until done changing room description<br />	commit changes to gameworld<br /><br />End<br /></p>
<a name="refuse case132856"></a>
<h4 class ="usecase">1.1.2.4 Use Case Link Room</h4>
<p>Administrator<br />	gameWorld<br />select room that has been created and not linked<br />	adds doors to the rooms that will link to it<br />	commit changes<br />	notify users in adjacent rooms of new doors<br /><br />End<br /></p>
</div>
<p>Diagram : <a href="index.html#refuse case diagram129784"><b>Level 1 Admin</b></a></p>
<a name="refuse case128171"></a>
<h3 class ="usecase">1.1.3 Use Case System Maintenance</h3>
<div class="sub">
<a name="refuse case diagram129323"></a>
<p align="center"><img src="fig129323.png" alt="" /></p>
 <p align="center"><b>System Maintenance</b></p><p><br /></p><p><br /></p>
<a name="refuse case129282"></a>
<h4 class ="usecase">1.1.3.1 Use Case Pause game</h4>
<p>Administrator<br />	Game World<br /><br />Supply message to users<br />	Place all players in suspended animation<br />	Notify users with message from Admin.<br />	Save game status<br /><br />End<br /><br /></p>
<a name="refuse case128130"></a>
<h4 class ="usecase">1.1.3.2 Use Case startup</h4>
<p>Administrator<br />	Gameworld<br />tell gameworld to start game<br />	look up game status in database<br />	set up game according to game status<br />	if game resumed, <br />	notify all players that game has resumed<br /><br />End<br /></p>
<a name="refuse case128002"></a>
<h4 class ="usecase">1.1.3.3 Use Case End Game</h4>
<p>Administrator<br />	Game World<br /><br />	Offer to save user accounts<br />choose whether to save user accounts<br />	Delete game<br />	delete user accounts if directed<br /><br />End<br /><br /></p>
</div>
<a name="refuse case diagram129579"></a>
<p align="center"><img src="fig129579.png" alt="" /></p>
 <p align="center"><b>Overview</b></p><p><br /></p><p><br /></p>
<a name="refuse case129451"></a>
<h3 class ="usecase">1.1.4 Use Case Ensure Healthy Gameworld</h3>
<div class="sub">
<a name="refuse case133880"></a>
<h4 class ="usecase">1.1.4.1 Use Case Populate world Items</h4>
<p>System<br />	Gameworld<br />Loads list of initial items and locations.<br />Tells gameworld to load list of items.<br />	Gameworld loads all items.<br />	Gameworld displays all items.<br />Genereates list of items which will respawn.<br />Tells gameworld to create spawn points for items.<br />	Gameworld creates spawn points.<br />END<br /></p>
<a name="refuse case134264"></a>
<h4 class ="usecase">1.1.4.2 Use Case repopulate world items</h4>
<p>System<br />	Gameworld<br />Request list of item spawns locations.<br />	Gathers item spawn locations.<br />	Return item spawn locations.<br />Generate lists of items to spawn, which meet the spawn conditions.<br />Gameworld told to spawn items.<br />	Gameworld spawns items.<br />	Items appear in the world.<br />END<br /></p>
<a name="refuse case134008"></a>
<h4 class ="usecase">1.1.4.3 Use Case Advance game time</h4>
<p>System<br />	GameWorld<br />System tells gameworld to advance time.<br />	Gameworld advances time.<br />	Gameworld updates all world settings that are time dependent. (sun rise, sun set)<br />	Gameworld displays updates to users.<br />END<br /></p>
<a name="refuse case134136"></a>
<h4 class ="usecase">1.1.4.4 Use Case balance economy</h4>
<p>System<br />	GameWorld<br />Requests gameworld item counts.<br />	Returns item counts.<br />Calculates new prices for all items.<br />Set item prices in gameworld<br />	Gameworld adjusts item prices.<br />END<br /></p>
<a name="refuse case133368"></a>
<h4 class ="usecase">1.1.4.5 Use Case respawn system characters</h4>
<p>System<br />	Gameworld<br />Request list of character spawns locations.<br />	Gathers character spawn locations.<br />	Return character spawn locations.<br />Generate lists of characters to spawn, which meet the spawn conditions.<br />Gameworld told to spawn characters.<br />	Gameworld respawns character.<br />	Character appears in world.<br />END<br /></p>
<a name="refuse case133240"></a>
<h4 class ="usecase">1.1.4.6 Use Case Collect Garbage</h4>
<p>System<br />	GameWorld<br />Gets list of all game objects.<br />	Collects list of all game objects.<br />	Returns list of world objects.<br />Tells gameworld to remove objects which has been existence too long.<br />	Removes all objects which have been around too long.<br />Sets timer for next garbage collection.<br />	<br /></p>
<a name="refuse case130859"></a>
<h4 class ="usecase">1.1.4.7 Use Case Ensure Fairplay</h4>
<p>Game Manager<br />	Game World<br />Game manager retrieves list of characters.<br />	returns list of users.<br />Game manager limits all user action times to a fair amount<br />	enforces time limits on actions.<br /></p>
</div>
<a name="refuse case129579"></a>
<h3 class ="usecase">1.1.5 Use Case Game Play</h3>
<div class="sub">
<a name="refuse case132216"></a>
<h4 class ="usecase">1.1.5.1 Use Case Enroll in the game</h4>
<p>USER<br />		Gameworld<br /><br />Establish virtual identity<br />		Gameworld accepts user's virtual identity<br /><br />Select race<br />		Gameworld integrates user's race into user's virtual persona<br /><br />Select class<br />		Gameworld integrates user's class into user's virtual persona<br /><br />Select guild<br />		Gameworld integrates user's guild into user's virtual persona<br /><br />Establish avatar<br />		Gameworld integrates user's avatar into user's virtual persona<br /><br />Select  wardrobe<br />		Gameworld integrates user's wardrobe choices into user's virtual persona<br /><br />Select tools<br />		Gameworld integrates user's tool choice into user's virtual persona<br /><br />End<br /></p>
<a name="refuse case132088"></a>
<h4 class ="usecase">1.1.5.2 Use Case Play the Game</h4>
<p>USER<br />		Gameworld<br />Login to Gameworld<br />		Retrieve user's virtual identity and prior game status<br /><br />User issues gameworld movement command (along compass rose)<br />		Gameworld repositions user in gameworld<br /><br />User issues gameworld item aquisition command (pick up, put down)<br />		Gameworld gives item to/recieves item from user<br /><br />User issues gameworld social iteraction command (speak with other characters)<br />		Gameworld passes user's message to other user<br /><br />User issues gameworld gameworld inquiry command (view surroundings, view personal inventory)<br />		Gameworld explains item of interest to user<br /><br />User issues gameworld character interaction command (talk, buy/sell/trade item interchange, physical interplay)<br />		Gameworld interacts with user<br /><br />User issues gameworld select quest command<br />		Gameworld directs user towards quest<br /><br />User issues exit gameworld command<br />		Gameworld saves user's settings configuration<br />		Gameworld disconnects user<br /> <br />End<br /></p>
</div>
<a name="refuse case130731"></a>
<h3 class ="usecase">1.1.6 Use Case Moderate Game</h3>
<div class="sub">
<a name="refuse case132344"></a>
<h4 class ="usecase">1.1.6.1 Use Case Forbid User Actions</h4>
<p>Administrator<br />	GameWorld<br /><br />Specify user to forbid<br />	find user<br />	ask whether permanent or temporary<br />If ban is temporary,<br />specify time user is forbidden<br />	start timer<br />	block logins from that user until time expires<br /><br /><br />End<br />set timer<br /><br />End<br /></p>
<p>Extension points:<br /><div class="sub">a if permanent, block user forever.  End</div></p>
<a name="refuse case128299"></a>
<h4 class ="usecase">1.1.6.2 Use Case Quest Management</h4>
<div class="sub">
<a name="refuse case diagram129451"></a>
<p align="center"><img src="fig129451.png" alt="" /></p>
 <p align="center"><b>Quest Management</b></p><p><br /></p><p><br /></p>
<a name="refuse case133752"></a>
<h4 class ="usecase">1.1.6.2.1 Use Case remove quests</h4>
<p>moderator<br />	gameworld<br /><br />	Prompt for quest to remove<br />Select quest to remove<br />	remove quest<br /><br />End<br /></p>
<p>Extension points:<br /><div class="sub">1a	If users are engaged in quest<br />	notify moderator and ask for<br />	verification<br />If moderator says no, don't remove it,<br />then End</div></p>
<a name="refuse case133624"></a>
<h4 class ="usecase">1.1.6.2.2 Use Case Add quests</h4>
<p>Moderator<br />	Game World<br /><br />	Prompt for name of quest<br />select name for quest<br />	Prompt for objects to be gathered<br />select object to be gathered<br />	Repeat as necessary<br />	Prompt for tasks to fulfill<br />select tasks to fulfill<br />	Repeat as necessary<br />	Prompt for time constraint, if any<br />select time constraints, if any<br />	commit changes to gameworld<br /><br />End<br /></p>
<p>Extension points:<br /><div class="sub">1a 	If there is already a<br />	quest with that name,<br />	prompt for new name</div></p>
<a name="refuse case133496"></a>
<h4 class ="usecase">1.1.6.2.3 Use Case reset quests</h4>
<p>System<br />	Gameworld<br />Get list of quests for each user.<br />	Returns list of quests.<br />Generate lists of quests to reset, which are allowed to be reset.<br />Resets quests.<br />	Quests can now be run again.<br />END<br /></p>
</div>
</div>
<a name="refuse case view128043"></a>
<h3 class ="view">1.1.7 Use Case View Level 1</h3>
<div class="sub">
<a name="refuse case diagram129912"></a>
<p align="center"><img src="fig129912.png" alt="" /></p>
 <p align="center"><b>Level 1 Game Management</b></p><p><br /></p><p><br /></p>
<a name="refuse case diagram129656"></a>
<p align="center"><img src="fig129656.png" alt="" /></p>
 <p align="center"><b>Level 1 User</b></p><p><br /></p><p><br /></p>
<a name="refuse case diagram129784"></a>
<p align="center"><img src="fig129784.png" alt="" /></p>
 <p align="center"><b>Level 1 Admin</b></p><p><br /></p><p><br /></p>
</div>
</div>
<a name="refclass view128120"></a>
<h2 class ="view">1.2 Class View Domain Models</h2>
<div class="sub">
<a name="refclass diagram131192"></a>
<p align="center"><img src="fig131192.png" alt="" /></p>
 <p align="center"><b>Game Management</b></p><p><br /></p><p><br /></p>
<table><tr><td><div class="element">Class <b><a href="class131064.html#refclass131064"><b>Gameworld</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class131192.html#refclass131192"><b>Item</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class131320.html#refclass131320"><b>SystemCharacter</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class131448.html#refclass131448"><b>Quests</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class131576.html#refclass131576"><b>SystemClock</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class131704.html#refclass131704"><b>GameManager</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class131832.html#refclass131832"><b>Economy</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class128171.html#refclass128171"><b>UserCharacter</b></a></b></div></td></tr></table>
<a name="refclass diagram128002"></a>
<p align="center"><img src="fig128002.png" alt="" /></p>
 <p align="center"><b>Administrator</b></p><p><br /></p><p><br /></p>
<table><tr><td><div class="element">Class <b><a href="class128002.html#refclass128002"><b>Moderator</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class128130.html#refclass128130"><b>Administrator</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class128258.html#refclass128258"><b>MeatBag</b></a></b></div></td></tr></table>
<a name="refclass diagram128043"></a>
<p align="center"><img src="fig128043.png" alt="" /></p>
 <p align="center"><b>User</b></p><p><br /></p><p><br /></p>
<table><tr><td><div class="element">Class <b><a href="class129451.html#refclass129451"><b>Race</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class129579.html#refclass129579"><b>SkillGroup</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class129707.html#refclass129707"><b>WardrobeItem</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class129835.html#refclass129835"><b>Guild</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class129963.html#refclass129963"><b>ToolItem</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class132984.html#refclass132984"><b>Currency</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class131115.html#refclass131115"><b>Inventory</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class132267.html#refclass132267"><b>CharacterAttributes</b></a></b></div></td></tr></table>
<table><tr><td><div class="element">Class <b><a href="class132395.html#refclass132395"><b>Skill</b></a></b></div></td></tr></table>
</div>
</div>
</body>
</html>
